The invention relates to a method of scanning indicia using selective sampling, and particularly although not exclusively to a method of reading bar codes using a laser scanner.
Various optical readers and optical scanning systems have been developed heretofore for reading bar code symbols appearing on a label or on the surface of an article. The bar code symbol itself is a coded pattern of indicia comprising a series of adjacent bars and spaces of various widths, the bars and spaces having different light reflecting characteristics.
A number of different bar code standards or symbologies exist. These symbologies include, for example, UPC/EAN, Code 128, Codabar, and Interleaved 2 of 5. The readers and scanning systems electro-optically decode each symbol to produce multiple alphanumerical characters that are intended to be descriptive of the article or some characteristic thereof. Such characters are typically represented in digital from as an input to a data processing system for applications in point-of-scale processing, inventory control, and the like. Scanning systems of this general type have been disclosed, for example, in U.S. Pat. Nos. 4,251,798; 4,360,798; 4,369,361; 4,387,297; 4,409,470 and 4,460,120, all of which have been assigned to Symbol Technologies, Inc., the assignee of this application. As disclosed in some of the above patents, one commonly used example of such a scanning system functions by scanning the laser beam in a line across a symbol. The symbol, composed of alternating, rectangular, reflective and non-reflective segments of various widths, reflects a portion of this lasex light. A photo detector then detects this reflected light and creates an electrical signal indicative of the intensity of the received light. The electronic circuitry or software of the scanning system decodes the electrical signal creating a digital representation of the data represented by the symbol scanned.
Typically, a scanner includes a light source such as a gas laser or semiconductor laser that generates a light beam. The use of semiconductor lasers as the light source in scanner systems is especially desirable because of their small size, low cost and low power requirements. The light beam is optically modified, typically by a lens, to form a beam spot of a certain size at a prescribed distance. It is preferred that the beam spot size be no larger than approximately the minimum width between regions of different light reflectivities, i.e., the bars and spaces of the symbol.
A scanner also includes a scanning component and a photo detector. The scanning component may either sweep the beam spot across the symbol and trace a scan line across the past the symbol, or scan the field of view of the scanner, or do both. The photodetector has a field of view which extends across and slightly past the symbol and functions to detect light reflected from the symbol. The analog electrical signal from the photodetector is first typically converted into a pulse width modulated digital signal, with the widths corresponding to the physical widths of the bars and spaces. This signal is then decoded according to the specific symbology into a binary representation of the date encoded in the symbol to the alphanumeric characters so represented.
In the prior art described above, a digitizer circuit may be used to translate the analog signal into a digital representation called a Digital Bar Pattern (or DBP). This simple digital representation of the data works extremely well in many situations, although it may sometimes be susceptible to unrecoverable errors if the bar code symbol to be read has substantial noise associated with it. With this prior art representation, a single extra edge detected or shifted due to noise may prevent proper decoding.
One straightforward way to acquire a more accurate representation of the bar code, for example for more aggressive or adaptive decoding, would be to sample the analog signal above the Nyquist rate, store the analog signal in memory, and then apply digital signal processing (DSP) techniques. This solution is, however, very expensive due to the large amount of samples required and the high speed processing that is necessary.
There is accordingly a need to provide a relatively cheap and reliable method of decoding an indicia (for example a bar code Symbol) after the optical detection system has transduced it into a distorted analog waveform. Such a need is particularly acute where it is desired to decode the symbol aggressively, that is by attempting to decode after a single scan.
It is an object of the present invention to aim to meet this need.
It is a further object of the invention to provide an efficient and economical means of acquiring an improved representation of the bar code signal.
According to the present invention there is provided a method of reading an indicia comprising areas or differing light reflectivity, comprising:
a) detecting light reflected from the indicia and producing an electrical signal representative thereof;
b) selectively sampling the signal, to produce a series of samples, at a sequence or points determined by detected features within the signal;
c) attempting to decode the indicia using at least some of the samples in the series and, if the attempt was unsuccessful:
i) analyzing the samples to provide information on the extent to which the samples appear to represent data corresponding to the indicia; and
ii) repeating steps (a) and (b), adapting the producing of the electrical signal or the selective sampling according to the said information.
The method of the present invention allows aggressive and reliable bar code symbol decoding, after the optical detection system in the scanner has transduced it into a distorted analog waveform.
The invention allows in particular an efficient and economical means of acquiring a more accurate representation of the bar code signal (or a signal corresponding to any other indicia to be read) by selectively sampling the analog signal, or a processed analog signal at a rate which is well below the Nyquist rate. The sample points are not uniform and are chosen to represent key features related to the signal.
If an attempted decode fails, based upon the samples that have been obtained, mechanical, electrical or logical adaptations are made to the scanner in an attempt to provide an improved decode on the next scan. To that end, the decoder analyses the samples to provide information on the extent to which the samples appear to be represent data corresponding to the indicia, and the extent to which the samples are spurious (for example because they represent noise). The information thus determined is used to provide feed-back to adapt the scanner to the current scanning environment, thereby providing improved performance on the next subsequent scan.
There are many adaptations that could be made, on the basis of the information that has been determined, for example adapting the signal processing of the analog electrical signal, or changing noise thresholds, frequency bandwidths, deconvolution filters, scanning speed, scanning pattern, and laser focusing. Any one or any combination of these may be adaptively altered in the method of the present invention.
A timing signal is preferably produced which synchronizes and/or provides timing information on the samples that have been taken. In the preferred embodiment, the timing signal is a square wave which changes state whenever a sample has been taken. The timing signal provides further information which is used by the decoder, in association with the values of the samples themselves, thereby enabling the decoder to attempt to decode the indicia.
In the preferred embodiment, a sample is taken of an analog electrical signal which is representative of light which has been reflected from the indicia at positions which correspond to peaks in the derivative of the said signal. A minimum rejection level may be provided, and the detection logic arranged so that no sample is taken if the corresponding peak is smaller than the minimum level. The value of that minimum level may be one of the adaptive parameters which may be altered according to the estimated amount of noise that has been round on analysis of previous samples.
The method of the present invention may be particularly useful in devices which make use of non-conventional optics, for example axicon or holographic optics. Such optics may increase the working range of a laser scanner significantly, as is described for example in U.S. Pat. No. 5,080,456. The profile produced by such non-conventional optics are multimodal and contain side lobes. These side lobes introduce additional xe2x80x9cwigglesxe2x80x9d or bumps on the analog signal. These additional xe2x80x9cwigglesxe2x80x9d, if detected by a standard digitizer, will most probably result in an unrecoverable error in the bar code representation, thereby making the system less reliable. However, if such non-conventional optics are used in conjunction with the method of the present invention, a much more robust system can be created. Small wiggles introduced by the scanning beam profile may be ignored by the decoder, merely by properly selecting the larger features and ignoring the smaller ones.
The method of the present invention is also particularly useful in scanners that make use of enhancement filters to increase the depth of modulation, for example as described in U.S. Pat. No. 5,140,146. In such devices, the resulting enhanced analog signal normally exhibits xe2x80x9cringingxe2x80x9d. This ringing introduces additional xe2x80x9cwigglesxe2x80x9d in the analog signal, similar to those described above. However, if enhancement filters are used in conjunction with the method of the present invention, a much more robust system can be created. Small wiggles introduced by the enhancement filter can be ignored by the decoder by properly selecting the larger features and ignoring the smaller ones. This also reduces the trade-off that has to be made between reading high density bar code symbols with a very low depth of modulation, and low quality bar code symbols that might include printing noise (for example dot matrix bar codes).